// This file is based on the following file from the LZMA SDK (http://www.7-zip.org/sdk.html):
//   ./CPP/7zip/Guid.txt
#pragma once


namespace SevenZip
{
namespace intl
{
	// IStream.h

	// {23170F69-40C1-278A-0000-000300010000}
	DEFINE_GUID(IID_ISequentialInStream,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000300010000}
	DEFINE_GUID(IID_ISequentialOutStream,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000300030000}
	DEFINE_GUID(IID_IInStream,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000300040000}
	DEFINE_GUID(IID_IOutStream,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000300060000}
	DEFINE_GUID(IID_IStreamGetSize,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00);

	// ICoder.h
	// {23170F69-40C1-278A-0000-000400040000}
	DEFINE_GUID(IID_ICompressProgressInfo,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00);

    // {23170F69-40C1-278A-0000-000400600000}
	DEFINE_GUID(IID_ICompressCodecsInfo,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00);

    // {23170F69-40C1-278A-0000-000400610000}
	DEFINE_GUID(IID_ISetCompressCodecsInfo,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00);

	// IPassword.h

	// {23170F69-40C1-278A-0000-000500100000}
	DEFINE_GUID(IID_ICryptoGetTextPassword,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000500110000}
	DEFINE_GUID(IID_ICryptoGetTextPassword2,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00);

	// IArchive.h

	// {23170F69-40C1-278A-0000-000600030000}
	DEFINE_GUID(IID_ISetProperties,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x03, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000600100000}
	DEFINE_GUID(IID_IArchiveOpenCallback,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000600200000}
	DEFINE_GUID(IID_IArchiveExtractCallback,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00);

    // {23170F69-40C1-278A-0000-000600300000}
	DEFINE_GUID(IID_IArchiveOpenVolumeCallback,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x30, 0x00, 0x00);

    // {23170F69-40C1-278A-0000-000600400000}
	DEFINE_GUID(IID_IInArchiveGetStream,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x40, 0x00, 0x00);

    // {23170F69-40C1-278A-0000-000600500000}
	DEFINE_GUID(IID_IArchiveOpenSetSubArchiveName,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x50, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000600600000}
	DEFINE_GUID(IID_IInArchive,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x60, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000600800000}
	DEFINE_GUID(IID_IArchiveUpdateCallback,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x80, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000600820000}
	DEFINE_GUID(IID_IArchiveUpdateCallback2,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x82, 0x00, 0x00);

	// {23170F69-40C1-278A-0000-000600A00000}
	DEFINE_GUID(IID_IOutArchive,
		0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x06, 0x00, 0xA0, 0x00, 0x00);

	// Handler GUIDs

	// {23170F69-40C1-278A-1000-000110010000}
	DEFINE_GUID(CLSID_CFormatZip,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x01, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-000110020000}
	DEFINE_GUID(CLSID_CFormatBZip2,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x02, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-000110030000}
	DEFINE_GUID(CLSID_CFormatRar,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x03, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-000110070000}
	DEFINE_GUID(CLSID_CFormat7z,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x07, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-000110080000}
	DEFINE_GUID(CLSID_CFormatCab,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x08, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-0001100A0000}
	DEFINE_GUID(CLSID_CFormatLzma,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x0A, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-0001100B0000}
	DEFINE_GUID(CLSID_CFormatLzma86,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x0B, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-000110E70000}
	DEFINE_GUID(CLSID_CFormatIso,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xE7, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-000110EE0000}
	DEFINE_GUID(CLSID_CFormatTar,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xEE, 0x00, 0x00);

	// {23170F69-40C1-278A-1000-000110EF0000}
	DEFINE_GUID(CLSID_CFormatGZip,
		0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0xEF, 0x00, 0x00);
}
}
